gl renderer: Avoid crashing tooltips
authorTimm Bäder <mail@baedert.org>
Tue, 5 Dec 2017 16:49:25 +0000 (17:49 +0100)
committerTimm Bäder <mail@baedert.org>
Thu, 21 Dec 2017 18:12:31 +0000 (19:12 +0100)
gsk/gl/gskglrenderops.c

index 0b5a7dc1a4f39259ec72a1f3e78d86eb183bec39..8e96888b728d8e3337e5e371c29a590deea1dc40 100644 (file)
@@ -74,19 +74,22 @@ ops_set_clip (RenderOpBuilder      *builder,
   RenderOp *last_op;
   GskRoundedRect prev_clip;
 
-  last_op = &g_array_index (builder->render_ops, RenderOp, builder->render_ops->len - 1);
-
-  if (last_op->op == OP_CHANGE_CLIP)
-    {
-      last_op->clip = *clip;
-    }
-  else
+  if (builder->render_ops->len > 0)
     {
-      RenderOp op;
-
-      op.op = OP_CHANGE_CLIP;
-      op.clip = *clip;
-      g_array_append_val (builder->render_ops, op);
+      last_op = &g_array_index (builder->render_ops, RenderOp, builder->render_ops->len - 1);
+
+      if (last_op->op == OP_CHANGE_CLIP)
+        {
+          last_op->clip = *clip;
+        }
+      else
+        {
+          RenderOp op;
+
+          op.op = OP_CHANGE_CLIP;
+          op.clip = *clip;
+          g_array_append_val (builder->render_ops, op);
+        }
     }
 
   if (builder->current_program != NULL)